package com.peas.platform.module.icims.expenditure.expenses.adapter.repository.po;

import java.util.*;
import java.math.*;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.framework.mybatisplus.po.BasePo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
import javax.validation.constraints.*;

// 报账单明细(出国)
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "`tbl_expenditure_reimbursement_abroad`")
public class ExpenditureReimbursementAbroadPo extends BasePo {

    // 报账单ID
    // （报账单表）外键
    @Comment(value = "报账单ID")
    @TableField(value = "`expenditure_reimbursement_id`", jdbcType = JdbcType.BIGINT)
    private Long expenditureReimbursementId;

    // 出国地点
    @Comment(value = "出国地点")
    @Size(max = 500, message = "出国地点不能超过500个字符")
    @TableField(value = "`abroad_address`", jdbcType = JdbcType.VARCHAR)
    private String abroadAddress;

    // 出国日期
    @Comment(value = "出国日期")
    @TableField(value = "`abroad_start`", jdbcType = JdbcType.TIMESTAMP)
    private Date abroadStart;

    // 回国日期
    @Comment(value = "回国日期")
    @TableField(value = "`abroad_end`", jdbcType = JdbcType.TIMESTAMP)
    private Date abroadEnd;

    // 出国计划
    // 下拉框
    @Comment(value = "出国计划")
    @Size(max = 20, message = "出国计划不能超过20个字符")
    @TableField(value = "`abroad_plan`", jdbcType = JdbcType.VARCHAR)
    private String abroadPlan;

    // 部门
    @Comment(value = "部门")
    @Size(max = 500, message = "部门不能超过500个字符")
    @TableField(value = "`abroad_department`", jdbcType = JdbcType.VARCHAR)
    private String abroadDepartment;

    // 人员
    @Comment(value = "人员")
    @Size(max = 500, message = "人员不能超过500个字符")
    @TableField(value = "`abroad_peoples`", jdbcType = JdbcType.VARCHAR)
    private String abroadPeoples;

    // 附件数
    @Comment(value = "附件数")
    @TableField(value = "`abroad_files`", jdbcType = JdbcType.INTEGER)
    private Integer abroadFiles;

    // 团组名称及内容
    @Comment(value = "团组名称及内容")
    @TableField(value = "`abroad_content`", jdbcType = JdbcType.CLOB)
    private String abroadContent;

    // 交通费
    @Comment(value = "交通费")
    @TableField(value = "`amount_car`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountCar;

    // 伙食费
    @Comment(value = "伙食费")
    @TableField(value = "`amount_catering`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountCatering;

    // 公杂费
    @Comment(value = "公杂费")
    @TableField(value = "`amount_sundry`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountSundry;

    // 其他费
    @Comment(value = "其他费")
    @TableField(value = "`amount_other`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountOther;

    // 住宿费
    @Comment(value = "住宿费")
    @TableField(value = "`amount_hotel`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountHotel;

    // 团组统报费
    @Comment(value = "团组统报费")
    @TableField(value = "`amount_team`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountTeam;

    // 领用费
    @Comment(value = "领用费")
    @TableField(value = "`amount_lead`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountLead;

}
